package api

import (
	"io"
	"net/http"
	"openzbox.com/frame/echo"
	"os"
)

//处理上传文件的控制器
func Upload(c echo.Context) error {
	//-----------
	// 介绍演示如何处理文件上传
	//-----------

	// 通过FormFile函数获取客户端上传的文件
	file, err := c.FormFile("upload_file")
	if err != nil {
		return err
	}

	//打开用户上传的文件
	src, err := file.Open()
	if err != nil {
		return err
	}
	defer src.Close()

	// 创建目标文件，就是我们打算把用户上传的文件保存到什么地方
	// file.Filename 参数指的是我们以用户上传的文件名，作为目标文件名，也就是服务端保存的文件名跟用户上传的文件名一样
	dst, err := os.Create(file.Filename)
	if err != nil {
		return err
	}
	defer dst.Close()

	// 这里将用户上传的文件复制到服务端的目标文件
	if _, err = io.Copy(dst, src); err != nil {
		return err
	}
	return c.NoContent(http.StatusOK)
	//return c.HTML(http.StatusOK, fmt.Sprintf("<p>文件上传成功: %s</p>", file.Filename))
}
